In computer systems such as personal computer systems, many programs for different applications (e.g., word processing, database management, development of spread sheets) can be executed. Typically, this is accomplished by loading the application software program from a storage medium, usually a disk, into the computer memory and executing the program. After completing some or all of a first application, data or documents may be printed by a printer or saved on a disk. To execute a second application, the first application is ended, and the software program for the second application is loaded into the computer memory in place of the first program.
In some cases, more than one application program is stored in memory at the same time, and provision is made for selectively executing a desired one of the two or more application programs. In such situations, the computer system usually includes software for terminating the execution of a first application program temporarily, permitting the execution of a second application program, with subsequent return to the operating point in the first application program at which execution was terminated.
This exit from, and return to, an application is often accomplished by the use of a "hot-key" approach in which the depression of a particular key or combination of keys at a keyboard results in the transfer of operation between the two applications. Ordinarily, in performing such direct hot-keying between programs, the primary application is "frozen" at a then-current execution point, during the hot-keying to a secondary application and the execution of that secondary application. There are difficulties in implementing the above-described hot-keying where both applications provide output to a printer, since the printer must be properly set to print the output from each application when that application is running.
As an example, and as will be discussed subsequently with regard to an exemplary embodiment, the invention to be described may be used advantageously where the primary application is a memory resident word processing program and a secondary application is a memory resident typewriter emulator program. Direct hot-keying is desirable in such a situation since it allows the operator to effectively switch back and forth between word processing and typewriter functions, without the need to exit from one program and to restart the other program each time a change is made between programs.
When operating within a word processing program, hot-keying out of the word processor is normally accomplished by memory resident task selection software which intercepts keystrokes to determine if the operator has depressed the hot key. This hot key software suspends the operation of the word processor in response to the hot key. When exiting the word processing application, the hot key software saves current parameters to permit a return to the same point in the word processor application when the microprocessor later exits the secondary application. Printer states for the word processing application software can be restored to the correct conditions upon return since the word processing software expects to find the printer in known default states.
The use of such hot key task selection software for controlling exiting from, and returning to, a secondary application such as a typewriter emulator is more difficult to implement because there are no "default values" to which to reset the printer. In addition, a typewriter emulator program must maintain changeable operating format information such as margins and tab stops.
It has been an objective of the present invention, therefore, to provide means for direct hot-keying between software applications which provide printer output, wherein the proper printer states, or parameters, are restored before each application provides output to the printer for printing.